AMI dataset

データ読み込み

医科REテーブル

(amiIkaRe <- read.csv("data/AMI/IKA/RE.csv", header = TRUE))

診療年月ごとの件数

summary(factor(amiIkaRe$診療年月))
## 42804 42805 42806 42807 42808 42809 42810 42811 42901 42902 42903 42904 
##    17    34    51    46    55    48    41    57    50    47    60    29 
## 42905 42912 
##    17    46

医科SIテーブルを読み込み

(amiIkaSi <- read.csv("data/AMI/IKA/SI.csv", header = TRUE))

マスター準備

H28診療行為マスターを支払基金ウェブサイトからダウンロード

library(rvest)
## Warning: package 'rvest' was built under R version 3.5.2
## Loading required package: xml2
htmlH28Proc <- read_html("https://www.ssk.or.jp/seikyushiharai/tensuhyo/kihonmasta/h28/kihonmasta_01.html")
htmlH28Proc
## {xml_document}
## <html lang="ja" xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml">
## [1] <head>\n<meta http-equiv="content-type" content="text/html; charset= ...
## [2] <body id="base">\n\n<!-- scs_jyogai_start -->\n<noscript>\n<p class= ...
library(magrittr)
library(tidyverse)
## ─ Attaching packages ─────────────────────────────────────────────── tidyverse 1.2.1 ─
## ✔ ggplot2 3.0.0     ✔ purrr   0.2.5
## ✔ tibble  1.4.2     ✔ dplyr   0.7.6
## ✔ tidyr   0.8.1     ✔ stringr 1.3.1
## ✔ readr   1.1.1     ✔ forcats 0.3.0
## ─ Conflicts ───────────────────────────────────────────────── tidyverse_conflicts() ─
## ✖ tidyr::extract()        masks magrittr::extract()
## ✖ dplyr::filter()         masks stats::filter()
## ✖ readr::guess_encoding() masks rvest::guess_encoding()
## ✖ dplyr::lag()            masks stats::lag()
## ✖ purrr::pluck()          masks rvest::pluck()
## ✖ purrr::set_names()      masks magrittr::set_names()
allURL <- htmlH28Proc %>% 
  html_nodes(css = "a[href *= 's_ALL']") %>% 
  html_attr("href") %>% 
  str_c("https://www.ssk.or.jp/seikyushiharai/tensuhyo/kihonmasta/h28/", .)

fileName <- htmlH28Proc %>% 
  html_nodes(css = "a[href *= 's_ALL']") %>% 
  html_attr("href") %>% 
  str_split(., pattern = "/") %>% 
  extract2(1) %>% 
  extract2(2) %>% 
  str_replace(.,"zip", "csv")

temp <- tempfile()
download.file(allURL, temp, mode="wb")
unzip(temp, fileName)
allDataProcH28 <- read.csv(fileName, header = FALSE, fileEncoding = "sjis")

allDataProcH28

集計

診療行為別ID1数

# install.packages("tidyverse")
library(tidyverse)

amiIkaRe %>% 
  filter(診療年月==42808) %>% 
  left_join(amiIkaSi, by = "レセプト通番") %>% 
  group_by(診療行為コード) %>% 
  summarise(n=n_distinct(ID1)) %>% 
  inner_join(allDataProcH28 %>% mutate(診療行為コード=V3, 診療行為名=V5), by = "診療行為コード") %>% 
  select(診療行為コード, 診療行為名, n)